#ifndef JPAB_H
#define JPAB_H

#include <jni.h>
#include <portaudio.h>

JNIEXPORT jint JNICALL Java_org_jpab_PortAudio_getVersion(JNIEnv *, jobject);
JNIEXPORT jstring JNICALL Java_org_jpab_PortAudio_getVersionText(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_initialize(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_terminate(JNIEnv *, jobject);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getDefaultHostAPIAsBuffer(JNIEnv *, jobject);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getHostAPIAsBuffer(JNIEnv *, jobject, jint);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getHostAPIsAsBuffer(JNIEnv *, jobject);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getHostAPIsDevicesAsBuffer(JNIEnv *, jobject, jint);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getDeviceAsBuffer(JNIEnv *, jobject, jint);
JNIEXPORT jobject JNICALL Java_org_jpab_PortAudio_getDevicesAsBuffer(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_abortStream(JNIEnv *, jobject, jint);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_closeStream(JNIEnv *, jobject, jint);
JNIEXPORT jdouble JNICALL Java_org_jpab_PortAudio_getStreamCpuLoad(JNIEnv *, jobject, jint);
JNIEXPORT jdouble JNICALL Java_org_jpab_PortAudio_getStreamTime(JNIEnv *, jobject, jint);
JNIEXPORT jboolean JNICALL Java_org_jpab_PortAudio_isStreamActive(JNIEnv *, jobject, jint);
JNIEXPORT jboolean JNICALL Java_org_jpab_PortAudio_isStreamStopped(JNIEnv *, jobject, jint);
JNIEXPORT jint JNICALL Java_org_jpab_PortAudio_openStream(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_startStream(JNIEnv *, jobject, jint);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_stopStream(JNIEnv *, jobject, jint);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_isFormatSupported(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_org_jpab_PortAudio_free(JNIEnv *, jobject, jobject);

#endif
